package u

import (
	"math/rand"
	"time"
)

// 生成名字通用方法
func CreateNameDefault(f,b string,        // 姓名前后缀
	             length int,              // 名字的长度
	             FLen int,                // 姓氏集
	             Fs []string,             // 姓氏集长度
	             BLen int,                // 名字集
	             Bs []string,             // 名字集长度
	             num int64) string{
	t := time.Now().UnixNano() + num
	r := rand.New(rand.NewSource(t))
	if f == ""{
		index := r.Intn(FLen)
		f = Fs[index]
	}
	if b == ""{
		for i:=0;i<length;i++{
			index := r.Intn(BLen)
			b += Bs[index]
		}
	}
	return f + b
}

// 生成西方名字通用方法
func CreateWsName(f,b string,        // 姓名前后缀
	FLen int,                // 姓氏集
	Fs []string,             // 姓氏集长度
	BLen int,                // 名字集
	Bs []string,			// 名字集长度
	num int64) string{
	t := time.Now().UnixNano() + num
	r := rand.New(rand.NewSource(t))
	if f == ""{
		index := r.Intn(FLen)
		f = Fs[index]
	}
	if b == ""{
		index := r.Intn(FLen)
		b = Bs[index]
	}
	return b + "·" + f
}

// 生成名词
func CreateName(f,b string,        // 名字前后缀
	length int,             //  名长度
	FLen int,                // 名集
	Fs []string,             // 名长度
	BLen int,                // 根字集
	Bs []string,  // 根集长度
	num int64) string{    // 避免随机重复
	t := time.Now().UnixNano() + num
	r := rand.New(rand.NewSource(t))
	if f == ""{
		for i:=0;i<length;i++{
			index := r.Intn(FLen)
			f += Fs[index]
		}
	}
	if b == ""{
		index := r.Intn(BLen)
		b = Bs[index]
	}
	return f + b
}

// 生成组合词
func CreateZhWords(f,b string,        // 前后缀
	FLen int,                // 前缀集
	Fs []string,             // 前缀集长度
	BLen int,                // 后缀集
	Bs []string,			// 后缀集长度
	num int64) string{
	t := time.Now().UnixNano() + num
	r := rand.New(rand.NewSource(t))
	if f == ""{
		index := r.Intn(FLen)
		f = Fs[index]
	}
	if b == ""{
		index := r.Intn(FLen)
		b = Bs[index]
	}
	return f + b
}